package uniquindio.facing.ingesis.moviles.undroiq.activity;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import uniquindio.facing.ingesis.moviles.undroiq.contantes.ConstantesGenerales;
import uniquindio.facing.ingesis.moviles.undroiq.entidades.Actividad;
import uniquindio.facing.ingesis.moviles.undroiq.entidades.Noticia;
import uniquindio.facing.ingesis.moviles.undroiq.entidades.Venta;
import uniquindio.facing.ingesis.moviles.undroiq.http.Httppostaux;
import android.os.SystemClock;
import android.util.Log;

public class UtilContenido {

	Httppostaux post;

	public UtilContenido() {
		post = new Httppostaux();
	}

	public List<Noticia> obtenerNoticias() {

		List<Noticia> noticias = new ArrayList<Noticia>();
		ArrayList<NameValuePair> postparameters2send = new ArrayList<NameValuePair>();
		// realizamos una peticion y como respuesta obtenes un array JSON
		JSONArray jdata = post.getserverdata(postparameters2send,
				ConstantesGenerales.URL_GETNOTICIAS);
		SystemClock.sleep(950);

		// si lo que obtuvimos no es null
		if (jdata != null && jdata.length() > 0) {

			JSONObject json_data; // creamos un objeto JSON
			try {

				for (int i = 0; i < jdata.length(); i++) {

					json_data = jdata.getJSONObject(i);
					String id = json_data.getString("id");
					String titulo = json_data.getString("titulo");
					String descripcion = json_data.getString("descripcion");
					Noticia nueva = new Noticia(id, titulo, descripcion);
					noticias.add(nueva);
				}

				return noticias;

			} catch (JSONException e) {
				e.printStackTrace();
			}

		} else {
			return null;
		}
		return null;

	}

	public List<Actividad> obtenerActividades() {

		List<Actividad> actividades = new ArrayList<Actividad>();
		ArrayList<NameValuePair> postparameters2send = new ArrayList<NameValuePair>();
		// realizamos una peticion y como respuesta obtenes un array JSON
		JSONArray jdata = post.getserverdata(postparameters2send,
				ConstantesGenerales.URL_GETACTIVIDADES);
		SystemClock.sleep(950);

		// si lo que obtuvimos no es null
		if (jdata != null && jdata.length() > 0) {

			JSONObject json_data; // creamos un objeto JSON
			try {

				for (int i = 0; i < jdata.length(); i++) {

					json_data = jdata.getJSONObject(i);
					String id = json_data.getString(ConstantesGenerales.ID);
					String titulo = json_data
							.getString(ConstantesGenerales.TITULO);
					String descripcion = json_data
							.getString(ConstantesGenerales.DESCRIPCION);
					Actividad nueva = new Actividad(id, titulo, descripcion,
							"", "");
					actividades.add(nueva);
				}

				return actividades;

			} catch (JSONException e) {
				e.printStackTrace();
			}

		} else {
			return null;
		}
		return null;

	}

	public List<Venta> obtenerVentas() {

		List<Venta> ventas = new ArrayList<Venta>();
		ArrayList<NameValuePair> postparameters2send = new ArrayList<NameValuePair>();
		// realizamos una peticion y como respuesta obtenes un array JSON
		JSONArray jdata = post.getserverdata(postparameters2send,
				ConstantesGenerales.URL_GETVENTAS);
		SystemClock.sleep(950);

		// si lo que obtuvimos no es null
		if (jdata != null && jdata.length() > 0) {

			JSONObject json_data; // creamos un objeto JSON
			try {

				for (int i = 0; i < jdata.length(); i++) {

					json_data = jdata.getJSONObject(i);
					String id = json_data.getString(ConstantesGenerales.ID);
					String titulo = json_data
							.getString(ConstantesGenerales.TITULO);
					String descripcion = json_data
							.getString(ConstantesGenerales.DESCRIPCION);
					String precio = json_data
							.getString(ConstantesGenerales.PRECIO);
					String telefono = json_data
							.getString(ConstantesGenerales.TELEFONO);
					String correo = json_data
							.getString(ConstantesGenerales.CORREO);
					Venta nueva = new Venta(id, titulo, descripcion, precio,
							telefono, correo);
					ventas.add(nueva);
				}

				return ventas;

			} catch (JSONException e) {
				e.printStackTrace();
			}

		} else {
			return null;
		}
		return null;

	}

	public boolean agregarVenta(Venta venta) {
		int regstatus = -1;
		ArrayList<NameValuePair> postparameters2send = new ArrayList<NameValuePair>();

		postparameters2send.add(new BasicNameValuePair(
				ConstantesGenerales.ID, venta.getId()));
		postparameters2send.add(new BasicNameValuePair(
				ConstantesGenerales.TITULO, venta.getTitulo()));
		postparameters2send.add(new BasicNameValuePair(
				ConstantesGenerales.DESCRIPCION, venta.getDescripcion()));
		postparameters2send.add(new BasicNameValuePair(
				ConstantesGenerales.PRECIO, venta.getPrecio()));
		postparameters2send.add(new BasicNameValuePair(
				ConstantesGenerales.TELEFONO, venta.getTelefono()));
		postparameters2send.add(new BasicNameValuePair(
				ConstantesGenerales.CORREO, venta.getCorreo()));

		JSONArray jdata = post.getserverdata(postparameters2send,
				ConstantesGenerales.URL_ADDVENTA);

		SystemClock.sleep(950);

		// si lo que obtuvimos no es null
		if (jdata != null && jdata.length() > 0) {

			JSONObject json_data; // creamos un objeto JSON
			try {
				json_data = jdata.getJSONObject(0); // leemos el primer segmento
				// en nuestro caso el unico
				// accedemos al valor
				regstatus = json_data.getInt(ConstantesGenerales.REGSTATUS);
				Log.e(ConstantesGenerales.UNDROIQ,
						ConstantesGenerales.JSON_STATUS + regstatus);
				// muestro por log que obtuvimos
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			if (regstatus == 1) {
				Log.e(ConstantesGenerales.UNDROIQ,
						ConstantesGenerales.REGISTRO_INVALIDO);
				return true;
			} else {
				return false;
			}

		} else {
			Log.e(ConstantesGenerales.UNDROIQ, ConstantesGenerales.JSON_ERROR);
			return false;
		}

	}

	// class Noticias extends AsyncTask<Void, Void, List<Noticia>> {
	//
	// protected void onPreExecute() {
	// }
	// @Override
	// protected List<Noticia> doInBackground(Void... params) {
	//
	// return obtenerNoticias();
	// }
	//
	// protected void onPostExecute(List<Noticia> result) {
	//
	// }
	//
	// }

}
